Programmable control units, which are designed such that application- and user-specific computer programs can run on them for controlling industrial robots (robot control programs), are usually used to control industrial robots. Such control programs are usually prepared by a user, a robot programmer, and they contain a number of individual commands or sequences of individual commands in the form of procedures or subroutines, via which the motor mechanism of the robot is acted on within the framework of a motion control. The individual commands and the subroutines built up from them comprise, in particular, arithmetic expressions, logic expressions, motion instructions, queuing instructions or the like, by which the motion behavior of the robot can be controlled as a function of the activities to be carried out.
It is generally known that not all the individual commands or subroutines contained in computer programs require an equal portion of the total program run time during the execution of computer programs. This is linked, on the one hand, with the different frequency with which certain commands or subroutines are called, but, on the other hand, also with the internal complexity of these commands and subroutines, which complexity may be inherently given, on the one hand, e.g., in case of certain arithmetic operations such as root operations, but may also result, on the other hand, from an erroneous or non-optimal programming. It is therefore desirable to efficiently identify and eliminate such bottlenecks and weak points of the programming especially in controlling industrial robots that are used to perform repeated motion sequences with the highest possible velocity.
It is known that the run time of robot control programs can be measured for this purpose with an external clock. However, the result of such a measurement is highly inaccurate due to the process and, moreover, only slightly detailed, because it cannot usually be recognized from the outside in which concrete individual command or subroutine the robot control happens to be during the execution of the control program running on it. As an alternative, it was proposed that the robot control program to be checked be expanded by additional program code for a time measurement. Such additional program code comprises, in particular, timekeepers/timers in the program or the setting/resetting of outputs associated with a measurement of the corresponding output signals. It proved to be disadvantageous here, in particular, that due to the insertion of additional program code in the robot control program, the time characteristic of the robot control program, which is to be determined, is changed per se, so that no unambiguous statement can be made from the measuring results obtained on the actual run time characteristic of the robot control program being checked.